package com.cu.自动装配;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Primary;

/**
 * @Auther: 代理仁
 * @Date: 2019/7/10 22:54
 * @Description: 通过@ComponentScan注解扫描装载第一个userDao 在通过@Bean注入第二个userDao
 * @Autowired:自动装配(Spring的注解)
 *    默认按照类型找组件,同种类型找到多个,在根据你正在使用的组件属性(@Autowired private UserDao userDao)作为组件id在去容器中找,
 *    也可以通过@Qualifier("userDao")指定使用多个中的那个组件(容器中没有组件要个Autowired设置false值要不报错)
 *    使用@Primary标注在某个组件上就大概率使用当前组件(不能与@Qualifier同时使用)
 * @Resource和@Inject:自动装配(java注解)
 * @Resource:默认根据组件属性去找(private UserDao userDao) 也就是userDao,@Resource(name="")优先根据name找 不支持 @Primary
 * @Inject:不常用(导入javax.inject包)  支持 @Primary
 */
@ComponentScan("com.cu")
public class AutoConfig {
    @Primary
    @Bean("userDao2")
    public UserDao userDao(){
        UserDao dao=new UserDao();
        dao.setFlag("2");
        return dao;
    }
}
